package vue.eleve;

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.util.ArrayList;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFormattedTextField;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.TitledBorder;

import metier.Eleve;
import metier.Stage;
import configuration.MessageAppli;
import ctr.commun.CommunGest;
import ctr.eleve.GestSupprimerEleve;

public class JPanSupprimerEleve extends JPanel{
	
	private static final long serialVersionUID = -8258905260255616984L;
	private JTextField saisiNomEleve, saisiPrenomEleve;
	private JTextField saisiRechercheNomEleve, saisiRecherchePrenomEleve;
	private JComboBox saisiGradeEleve;
	private JComboBox saisiStage, saisiRechercheStage;
	private JFormattedTextField saisiDateNaissanceEleve;
	private String titre;
	private Eleve eleve;

	public JPanSupprimerEleve(JPanSupprimerEleve jPanModifierEleve) {
		this.saisiNomEleve = jPanModifierEleve.getSaisiNomEleve();
		this.saisiPrenomEleve = jPanModifierEleve.getSaisiPrenomEleve();
		this.saisiRechercheNomEleve = jPanModifierEleve.getSaisiRechercheNomEleve();
		this.saisiRecherchePrenomEleve = jPanModifierEleve.getSaisiRecherchePrenomEleve();
		this.saisiGradeEleve = jPanModifierEleve.getSaisiGradeEleve();
		this.saisiStage = jPanModifierEleve.getSaisiStage();
		this.saisiRechercheStage = jPanModifierEleve.getSaisiRechercheStage();
		this.saisiDateNaissanceEleve = jPanModifierEleve.getSaisiDateNaissanceEleve();
		this.titre = jPanModifierEleve.getTitre();
		this.eleve = jPanModifierEleve.getEleve();
		afficher(jPanModifierEleve.getTitre());
	}
	
	public JPanSupprimerEleve(String titre) {
		this.titre = titre;
		this.eleve= null; 
		afficher(titre);
	}
	
	/**
	 * @param titre
	 */
	private void afficher(String titre){
		CommunGest communGest = new CommunGest();
		
		// Recuperation de la liste des stages.
		ArrayList<Stage> lStage = communGest.getListeStage();
		if ( !lStage.isEmpty()){
			// Creation du panel de saisi
			JPanel panelSaisiRecherche = new JPanel();
			panelSaisiRecherche.setLayout(new GridLayout(3,1,3,3));
			
			// On test si les composants on deja ete rempli.
			// Et on y affecte les anciennes valeurs sinon on les initialisent.
			if (saisiRechercheNomEleve == null ){
				saisiRechercheNomEleve = new JTextField(15);		
			}
			if (saisiRecherchePrenomEleve == null ){
				saisiRecherchePrenomEleve = new JTextField(15);
			}
			if (saisiRechercheStage == null ){
				saisiRechercheStage = new JComboBox(lStage.toArray());
			}
			// Ajout des composants au panel de saisi
			panelSaisiRecherche.add(saisiRechercheNomEleve);
			panelSaisiRecherche.add(saisiRecherchePrenomEleve);
			panelSaisiRecherche.add(saisiRechercheStage);
			
			// Creation du panel de label
			JPanel panelLabelRecherche = new JPanel();
			panelLabelRecherche.setLayout(new GridLayout(3,1,3,3));
			panelLabelRecherche.add(new JLabel("Nom : "));
			panelLabelRecherche.add(new JLabel("Prenom : "));
			panelLabelRecherche.add(new JLabel("Stage : "));
			
			// Creation du bouton supprimer avec son panel
			JButton jButtonRechercherEleve = new JButton("Supprimer");
			jButtonRechercherEleve.addActionListener(new GestSupprimerEleve(this));

			JPanel panelBoutonRecherche = new JPanel();
			panelBoutonRecherche.add(jButtonRechercherEleve);
		
			// Ajout des differents composants au panel principal.
			this.setBorder(new TitledBorder("Recherche"));
			this.setLayout(new GridBagLayout());
			
			// Agencements des composants au moments de l'ajout.
			GridBagConstraints gbc = new GridBagConstraints();
			gbc.weightx = 0;
			gbc.weighty = 0; 
			gbc.gridwidth = 1;
			gbc.gridheight = 1;
			
			gbc.gridx = 0;
			gbc.gridy = 0;
			gbc.fill = GridBagConstraints.VERTICAL;
			this.add(panelLabelRecherche,gbc);
			
			gbc.gridx = 1;
			gbc.gridy = 0;
			gbc.fill = GridBagConstraints.VERTICAL;
			this.add(panelSaisiRecherche,gbc);
			
			gbc.gridx = 0;
			gbc.gridy = 2;
			gbc.gridwidth = 2;
			gbc.gridheight = 2;
			gbc.fill = GridBagConstraints.CENTER ;
			this.add(panelBoutonRecherche,gbc);
		}else{
			JOptionPane.showMessageDialog(this, MessageAppli.MSG_STAGE_AUCUN_STAGE + ", ajout d'eleve impossible.", MessageAppli.MSG_ERREUR_TITRE, JOptionPane.WARNING_MESSAGE);
		}
	
	}

	public JTextField getSaisiNomEleve() {
		return saisiNomEleve;
	}

	public JTextField getSaisiPrenomEleve() {
		return saisiPrenomEleve;
	}

	public JComboBox getSaisiGradeEleve() {
		return saisiGradeEleve;
	}

	public JFormattedTextField getSaisiDateNaissanceEleve() {
		return saisiDateNaissanceEleve;
	}

	public JComboBox getSaisiStage() {
		return saisiStage;
	}

	public JTextField getSaisiRechercheNomEleve() {
		return saisiRechercheNomEleve;
	}

	public JTextField getSaisiRecherchePrenomEleve() {
		return saisiRecherchePrenomEleve;
	}

	public JComboBox getSaisiRechercheStage() {
		return saisiRechercheStage;
	}

	public String getTitre() {
		return titre;
	}

	public Eleve getEleve() {
		return eleve;
	}

	public void setEleve(Eleve eleve) {
		this.eleve = eleve;
	}
}
